<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

</body>
<script>
    // 分组

    // 我们知道/a+/匹配连续出现的“a”，
    // 而要匹配连续出现的“ab”时，需要使用/(ab)+，其中括号是提供分组功能，使量词+作用于“ab”这个整体

    // const reg = /(ab)+/g;
    // const str = "abba abbb babbba";
    // str.replace(reg, "cd"); // 'cdba cdbb bcdbba'


    // 分组捕获：
    // 例如将 YYYY - MM - DD 格式的日期替换成 MM / DD / YYYY

    /**
     * 这个时候，如果我们上括号/(\d{4})-(\d{2})-(\d{2})/，那么分组就是下面的情况：
     *      YYYY-MM-DD   Group0
            YYYY         Group1
            MM           Group2
            DD           Group3
        想要获取每个分组匹配的内容该怎么获取呢？
        可以通过$符号获取，比如$1 代表YYYY， $2代表MM，所以完整的代码应该如下：
     * */
    // const reg = /(\d{4})-(\d{2})-(\d{2})/;
    // const date = "2023-01-05";
    // console.log(reg.test(date)); // true
    // console.log(date.replace(reg, "$2/$3/$1")); // 01/05/2023

    // 分支结构
    // 分支结构类似逻辑操作中的或操作，表示匹配规则 1 或者规则 2
    const reg = /(java)|(前端)/;
    const str1 = "学前端，来黑马";
    const str2 = "学java，也可以来黑马";
    reg.test(str1); // true
    reg.test(str2); // true

</script>

</html>